# 区块链很难学吗?
大家常见误区主要有两个:
第一个误区:将智能合约开发与区块链底层协议开发混为一谈。
大部分人认为的区块链开发其实是智能合约开发,也就是基于某一个链(比如以太坊、超级账本Fabric等)进行智能合约开发,而不是区块链底层协议开发。
区块链底层协议开发门槛很高,需要有丰富的密码学、分布式等技术开发经验才可以胜任。但智能合约开发其实就是基于区块链底层协议提供的高级语言进行编程,目前常用的有以太坊的solidity、EOS的C++、Fabric的go语言。
第二个误区:将技术研究和工具使用混为一谈。
如果我们的目标是要去谷歌、微软这样的大公司从事研发工作,那就需要具备深厚的计算机素养,熟悉计算机原理、算法等知识。但如果我们的目标是网站、APP、微信小程序、网络爬虫等应用的开发,那么只需要学习一点儿高级语言即可。
比如APP开发就需要学习Android或者IOS的开发,网站开发就需要具备一些Html、JavaScript知识,人工智能就需要学习Python。
同样学习区块链智能合约开发,在以太坊上我们需要掌握solidity(类似于JavaScript),在Fabric上需要掌握go语言、Node.js、Java其中一门开发语言,EOS需要掌握C++。
从工程角度来看,软件开发更看重的是业务需求、系统设计能力。一个高级工程师和一个初级工程师水平的差异在于两者的需求理解能力和软件设计水平的差异。如果只从编码角度来看,工程师就像生产线的工人,只不过大家使用的工具不同罢了。程序员需要熟悉计算机的基本操作,熟悉一些工程师必备的工具就可以开始干活了。
在实际工程中,那些熟悉业务的人员,一旦掌握了开发工具,软件开发能力反而会超过一名纯粹只懂技术的人员。